Distinction entities for segmentation

ABSTRACT

In accordance with aspects of the disclosure, systems and methods are provided for generating a reduced segment of a population set for a course of activities based on one or more distinction entities. The systems and methods may be configured to determine the population set for the course of activities. The population set may include a first number of members identified by a first distinction entity. The systems and methods may be configured to select a second distinction entity related to the first number of members of the population set. The systems and methods may be configured to generate the reduced segment of the population set for the course of activities by selecting a second number of members from the first number of members identified by the second distinction entity based on predetermined criteria.

TECHNICAL FIELD

The present description relates to data segmentation.

BACKGROUND

In conventional computing environments, segmentation of large amounts ofdata may include filtering user defined criteria. Filter criteria usedby developers are used to meet various objectives, such as datasegmentation goals. In some scenarios, a developer may manage datasegmentation based on manually implemented knowledge and experience.However, this conventional manual technique is difficult to coordinate,significantly time consuming, and highly complex for managing datasegmentation when attempting to manually perform operations andfunctions.

SUMMARY

In accordance with aspects of the disclosure, a computer system may beprovided, including instructions recorded on a computer-readable mediumand executable by at least one processor. The computer system mayinclude a segmentation manager configured to cause the at least oneprocessor to generate a reduced segment of a population set for a courseof activities based on one or more distinction entities. Thesegmentation manager of the system may include a set handler configuredto determine the population set for the course of activities. Thepopulation set may include a first number of members identified by afirst distinction entity of the one or more distinction entities. Thesegmentation manager of the system may include an entity handlerconfigured to select a second distinction entity of the one or moredistinction entities related to the first number of members of thepopulation set. The segmentation manager of the system may include asegmentation engine configured to generate the reduced segment of thepopulation set for the course of activities by selecting a second numberof members from the first number of members of the population setidentified by the second distinction entity based on predeterminedcriteria.

In accordance with aspects of the disclosure, a computer program productmay be provided, wherein the computer program product is tangiblyembodied on a non-transitory computer-readable storage medium andincludes instructions that, when executed by at least one processor, maybe configured to generate a reduced segment of a population set for acourse of activities based on one or more distinction entities. Theinstructions may be configured to determine the population set for thecourse of activities, the population set including a first number ofmembers identified by a first distinction entity of the or moredistinction entities. The instructions may be configured to select asecond distinction entity of the one or more distinction entitiesrelated to the first number of members of the population set. Theinstructions may be configured to generate the reduced segment of thepopulation set for the course of activities by selecting a second numberof members from the first number of members of the population setidentified by the second distinction entity based on predeterminedcriteria.

In accordance with aspects of the disclosure, a computer-implementedmethod may be provided including determining a population set for acourse of activities. The population set may include a first number ofmembers identified by one or more distinction entities including a firstdistinction entity. The method may include selecting a seconddistinction entity of the one or more distinction entities related tothe first number of members of the population set. The method mayinclude generating a reduced segment of the population set for thecourse of activities by selecting a second number of members from thefirst number of members of the population set identified by the seconddistinction entity based on predetermined criteria.

In accordance with aspects of the disclosure, a computer program productmay be provided, wherein the computer program product is tangiblyembodied on a non-transitory computer-readable storage medium andincludes instructions that, when executed by at least one processor, maybe configured to determine a population set for a course of activitiesincluding a first course of activities and a second course ofactivities. The population set may include a first segment with a firstnumber of members for the first course of activities, the population setincluding a second segment with a second number of members for thesecond course of activities. The instructions may be configured toselect a second distinction entity from the first number of members ofthe population set and from the second number of members of thepopulation set. The instructions may be configured to generate a reducedsegment of the first segment of the population set for the first courseof activities by removing one or more members of the first number ofmembers of the population set, if after comparing, the seconddistinction entity of one or more of the first number of members of thepopulation set match the second distinction entity of one or more of thesecond number of members of the population set.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing an example system, in accordance withaspects of the disclosure.

FIG. 2 is a process flow showing an example method, in accordance withaspects of the disclosure.

FIGS. 3A-3B are example process flows showing example methods, inaccordance with aspects of the disclosure.

FIGS. 4-11 are example screenshots illustrating various example usecases for a secondary distinction entity, in accordance with aspects ofthe disclosure.

DETAILED DESCRIPTION

FIG. 1 is an example block diagram illustrating an example system 100for distinguishing members of a segmentation population based on one ormore distinction entities, in accordance with aspects of the disclosure.

In the example of FIG. 1, the system 100 comprises a computer system forimplementing various aspects of the disclosure that may be associatedwith a computing device 104, thereby transforming the computing device104 into a special purpose machine designed to implement queryoptimization process(es), as described herein. In this instance, thecomputing device 104 may include standard element(s) and/orcomponent(s), including at least one processor(s) 110, at least onememory 112 (e.g., non-transitory computer-readable storage medium), atleast one database(s) 140, power, peripherals, and various othercomputing elements and/or components that may not be specifically shownin FIG. 1. Further, the system 100 may be associated with a displaydevice 150 (e.g., a monitor or other display) that may be used toprovide a user interface (UI) 152, such as, in various examples, agraphical user interface (GUI). In some examples, the UI 152 may be usedto receive preferences from a user for managing or utilizing the system100. As such, in some implementations, various other element(s) and/orcomponent(s) of the system 100 that may be useful for purpose ofimplementing the system 100 may be added or included, as would beapparent to one of ordinary skill in the art.

In the example of FIG. 1, the system 100 may include the computingdevice 104 and instructions recorded on the non-transitorycomputer-readable medium 112 and executable by the at least oneprocessor 110. The system 100 may include the display device 150 forproviding output to a user, and the display device 150 may include theUI 152 for receiving input from the user and/or providing output to theuser.

In various implementations, the system 100 may include a computer basedsystem and related methods for distinguishing one or more members of asegmentation population based on one or more distinction entities. Forinstance, in some examples, the example system 100 may include astructured query language (SQL) relational database management system.Generally, in some examples, SQL may refer to a special-purposeprogramming language designed for managing various types of data held ina relational database management system (RDBMS). In some examples, SQLmay refer to various types of data related languages including, e.g., adata definition language and a data manipulation language, where a scopeof SQL may include data insert, query, update and delete, schemacreation and modification, and data access control, and SQL may includeprocedural elements. Further, in some example, SQL may includedescriptions related to various language elements, including clauses,expressions, predicates, queries, and statements. For instance, clausesmay refer to constituent components of statements and queries, and insome instances, clauses may be considered optional. Further, expressionsmay be configured to produce scalar values and/or tables that mayinclude columns and rows of data. Further, predicates may be configuredto specify conditions that may be evaluated to SQL three-valued logic(3VL) (true/false/unknown) and/or Boolean truth values, which may beused to moderate effects of statements and queries, and which may alsobe used to modify program flow.

Further, in other instances, queries may be configured to retrieve datafrom a database based on specified criteria. Generally, queries providea means for users to describe data for retrieval from a database,thereby providing a database management system (DBMS) withresponsibility for planning, optimizing, and/or performing physicaloperations necessary to produce various desired results. Statements maybe configured to enable persistent effect on schemata and data, tothereby control, e.g., transactions, program flow, connections,sessions, and/or diagnostics.

In the example of FIG. 1, the system 100 may include a segmentationmanager 120 configured to cause the at least one processor 110 togenerate one or more reduced segments 180 of one or more population sets160 for a course of one or more activities 164 based on one or moredistinction entities 170. In some implementations, the segmentationmanager 120 may be configured to generate a reduced segment 180 of apopulation set 160 for a course of activities 164 based on one or moredistinction entities 170, including a first distinction entity and asecond distinction entity.

The segmentation manager 120 may include a set handler 121 that may beconfigured to determine the population set 160 for the course ofactivities 164. In some implementations, the population set 160 mayinclude a first number of members 162 identified by the firstdistinction entity of the one or more distinction entities 170. The sethandler 121 may be configured to select the first number of members ofthe population set. The population set may relate, for example, to a setof customers and/or a set of products. In some examples, the course ofactivities may relate to a campaign or a business campaign including anordered set of business related activities.

The segmentation manager 120 may include an entity handler 122 that maybe configured to select a second distinction entity of the one or moredistinction entities 170 related to the first number of members 162 ofthe population set 160. In some implementations, the entity handler 122may be configured to select one or more of the one or more distinctionentities, including the first distinction entity for the course ofactivities. The first distinction entity may relate to variousbusiness-related entities, such as, for example, customers targeted bythe course of activities. The second distinction entity may relate tovarious business-related entities that may be different or similar tothe first distinction entity, such as, for example, salesrepresentatives assigned to the first distinction entity, which may berelated to one or more other business-related entities, such ascustomers, products, etc. For instance, the second distinction entitymay relate to sales representatives assigned to the first distinctionentity related to customers, products, other business-related examples,and in some cases, non-business examples.

In some implementations, the business-related entities may include ormay be associated with services offered for sale or for hire includingdata software services, data storage services, data management services,sales management services, product sales tracking services, employeetracking services, finance services, marketing services, advertisingservices including cellular/mobile phone services, Wi-Fi/Internet accessand other broadband-related services, etc. Other business-relatedentities may include support for services related tocustomers/employees/products/services including services related towarehousing, inventories, retention, purchasing, settlement, delivery,etc. Still other business-related entities may include company-relatedsupport including human resource acquisition, management, and retention.Further, various other business-related entities may be included withoutdeparting form the scope of the disclosure.

In some implementations, the first distinction entity may relate to aprimary segmentation object (PSO). In some examples, segmentation mayuse a primary segmentation object (PSO) to determine what is to becounted and by which keys various data sources are to be joined.Further, joining of data sources based on the PSO may necessitate PSOkeys to be present in one or more or all data sources. As such, in someexamples, the PSO may be a true segmentation object and the fact thatits keys may be present in one or more or all data sources maydistinguish it from a mere distinction entity, whether this be primary,secondary, or tertiary.

From a technical point, the PSO may be in effect an Object Type knownfrom customizing, and the segmentation object key may therefore deal asa primary distinction entity. From a business point of view, the PSO maybe a main object of interest of a segmentation profile. For example, adesire may exist for a customer to be counted, previewed, split,exported, etc., where the values of the PSO may be treated as distinctwhen counting, pre-viewing, etc.

In some implementations, the secondary distinction entity (SDE) mayrefer to a secondary entity separate and distinct from the firstdistinction entity. For instance, some feature requests may demand thatcertain segmentation operations (which may have been hitherto alwaysexecuted from the perspective of the PSO) be executed from a shift inperspective, which may take distinct values of another, a secondary,entity into account (e.g., SDE). Thus, the secondary distinction entity(SDE) may be configured to define one or more attributes of a specificdata source (e.g., country, region, etc.) that may significantly altercertain segmentation operations, such as, e.g., operations with distinctbusiness semantics that may be enriched by the SDE aspect.

Further, in reference to the example of FIG. 1, the segmentation manager120 may include a segmentation engine 125 that may be configured togenerate the reduced segment 180 of the population set 160 for thecourse of activities 164. In some implementations, the reduced segment180 of the population set 160 for the course of activities 164 may begenerated by selecting a second number of members 162 from the firstnumber of members 162 of the population set 160 that may be identifiedby the second distinction entity based on predetermined criteria. Thesecond number of members may relate to a capacity including apredetermined capacity value related to the second distinction entity.The second number of members of the population set may be at least lessthan the first number of members of the population set.

In some implementations, the predetermined criteria may relate to atleast one business related measurement value including a predeterminedsales volume related to the first distinction entity. The predeterminedcriteria may be used and/or configured to restrict the reduced segmentof the population set to a predetermined sales volume related to thefirst distinction entity.

In some implementations, the segmentation engine 125 may be configuredto reduce the population set by selecting the second number of membersfrom the first number of members of the population set identified by thesecond distinction entity based on the predetermined criteria. Further,in some examples, the segmentation engine 125 may be configured toremove one or more unselected members of the first number of members ofthe population set.

In the example of FIG. 1, the segmentation manager 120 may include aninput handler 123 that may be configured to receive user input from auser via a graphical user interface, such as, e.g., the user interface152. In some implementations, the user input may include data and/orinformation related to one or more or each of the first distinctionentity, the second distinction entity, and the predetermined criteria.

In the example of FIG. 1, the segmentation manager 120 may include anoutput handler 124 that may be configured to display user output to auser via a graphical user interface, such as, e.g., the user interface152. In some implementations, the user output may include data and/orinformation related to the first number of members of the population setand/or the second number of members of the reduced segment of thepopulation set.

In accordance with aspects of the disclosure, SDE-enhanced operationsmay offer a mechanism (that may be implemented as a specific SQL basedtechnique) to a user of the system 100 that allows the user to answervarious business questions about data and/or information in one or more(e.g., at most two steps), where conventional techniques either fail tooffer this functionality or do only through a cumbersome series of manysteps and data exchanges. As such, within the present disclosure, thesecondary distinction entity (SDE) may be used and/or implemented forvarious use cases (e.g., as described herein). However, the SDE may berelevant for other use cases, other than those described herein.Therefore, the concept of SDEs is unique, at least in reference toaspects of the disclosure.

In some implementations, SDE-enhanced operations may refer to variousinstances of population sets and SDE usage, including examples, such ascustomers, business campaign, sales representative, sales volume, andemail addresses. However, aspects of the disclosure should not berestricted to only these specific usages, e.g., where population setsmay include customers, SDEs may include email addresses and/or salesrepresentatives, and predetermined capacity criteria may include salesvolume. Instead, aspects of the disclosure also pertain to SDE usagethat is not restricted to these specific instances, but such SDE usagemay be defined in terms of its reductive capacity related to any primaryobject of interest. Accordingly, any object or entity may be consideredor used as a secondary distinction entity, if from a user's point ofview it relates to a primary entity. Further, the disclosed concept,technique, and implementation of SDEs may be configured to allow fordefining/creating/generating composite SDEs, where a (logical) SDE maybe composed of multiple (two or more) sub-entities, e.g., “country” and“sales organization” may be combined into a “regional sales” SDE thatmay be used to discern at a higher level of granularity among members ofa population set.

In the example of FIG. 1, the secondary distinction entity maydistinguish members of a segmentation population (e.g., population set).In some implementations, the segmentation engine 125 may be used and/orconfigured for audience discovery and targeting to thereby supportfinding a preferred set of members (e.g., various customers or products)for a specific business case (e.g., a campaign, including a course ofone or more activities). The set of members (e.g., the segmentationpopulation) may be reduced via operations, where for each a new segmentmay be created/generated. In some examples, each segment may beconfigured to show a count of remaining distinct members. In otherexamples, one or more or all segmentation steps may operate on thesedistinct members by default.

In an example, a process may start with one or more or all customers(e.g., a segment with 15,000 customers), which may be reduced to thoselocated in a specific region or country (e.g., a segment with 8,000customers). Next, the process may restrict the set (e.g., populationset) to those customers having a sales volume of more than a specificvalue (e.g., $1,000), which may result in a reduced segment of customers(e.g., 2,700 customers). An issue that may arise is that, for certainuse cases, it may be required to also operate on entities that are notmember entities of the set.

For instance, a campaign may be executed by a certain number of salesrepresentatives (e.g., 110), where each may be assigned to certaincustomers and having a capacity to contact a certain number of customers(e.g., at most 5 customers). Hence, a segment may be created/generatedincluding a predetermined selection (e.g., at most 5 customers per salesrepresentative). In this example, the sales representative may bereferred to as another (non-member) entity, such as a secondary entity.

In some examples, similar use cases may include a number (e.g., 5) ofcustomers with a highest sales volume per sales representative, or anumber (e.g., 5) of customers with a lowest return rate per salesrepresentative, instead of any a number (e.g., 5) of customers per salesrepresentative. Further, in some other examples, it may be possible toperform one or more set operations (e.g., union, intersect, subtract,etc.) on one or more (e.g., two) existing segments, for which it may berequired to provide additional functional operation on one or moredifferent entities.

For instance, two customer segments may be provided for two similaremail-campaigns (e.g., offering different conditions). Some customersmay share a same email-address, where when sending different offers to asingle email address may not be desirable, it may be desirable to ensurethat customers sharing the same email-address are only included in onesegment. In this example, the email address may be considered the otherentity, e.g., a secondary entity.

In some implementations, distinct members of a segmentation populationmay be identified by a segmentation object, which may thus be considereda primary distinction entity. In some use cases, it may not besufficient to operate on the primary distinction entity alone (e.g.,customers alone). Apart from filter criteria (e.g., country=US), asecondary entity may need to be taken into account when reducing membersof a population set. Thus, in some implementations, the concept of thesecondary distinction entity (SDE) may be introduced for segmentationoperations, where an according use case may exist. In some instances,the secondary distinction entity may not be referred to as a secondarysegmentation object, because any resulting segment and its count maystill reflect the primary distinction entity, which may not bedesirable.

In some implementations, the secondary distinction entity may be used inone or two semantically different ways within the segmentation, e.g., a“per”-semantic basis, and a “by”-semantic basis. For instance, in someexamples, the “per”-semantic basis may be used for top, bottom, orrandom with N or N % operations.

In an example, for top N, the top 5 customers per sales representativemay be selected by sales volume, with the numbers above this results ina segment including at most 550 customers (at most 5 customers*110 salesrepresentatives). The selection may operate as follows. First, one ormore or all distinct sales representatives may be selected from thesource segment. Next, for each distinct sales representative, the top 5distinct customers may be selected by sales volume. Next, a new segmentmay be created with one or more or all distinct customers selectedpreviously.

In some other examples, the “by”-semantic may be used for creatinggroups of disjoint segments and for set-operations. In an example, forthe set operation subtract, one or more or all customers in segment Bmay be subtracted by email-address from segment A. The selection mayoperate as follows. First, distinct email-addresses for each sourcesegment may be selected, e.g., resulting in two lists ofemail-addresses, list A and list B. Next, one or more or allemail-addresses may be removed from list A that appear in list B, wherethe reduced list for A is list A′. Next, a new segment with one or moreor all customers may be created having an email-address from list A′. Insome examples, the SDE-operations may be most comprehensible if therelation of the primary distinction entity to the secondary distinctionentity is n:1.

As examples provided herein may demonstrate, definition and applicationof a secondary entity for the purpose of reducing a member populationmay introduce an additional, powerful tool to satisfy specific businessneeds. Such segmentation tasks may not be achieved (or possibly only inan indirect and cumbersome manner) by application of ordinary,conventional filter criteria alone. In another examples, anotherapproach to cover use cases and examples introduced herein may be tocompletely switch to another distinction entity (e.g., salesrepresentative or email-address) with a defined segmentation actionresulting in a new segment.

This approach may imply the new segment to show a distinct count of theother distinction entity. The segments within one segment tree mayrepresent different segmentation objects as distinction entities. Thefull switch between different distinction entities may lead to a morecomplex segment tree, where an additional switch-pre-step may benecessary to create a segment that reflects the other distinctionentity, and to carry out a desired segmentation operation on the otherdistinction entity segment. Further, an additional switch-post-step maybe necessary to create a segment that may reflect the originaldistinction entity. This may result in three segments instead of one newsegment.

In various examples, this may lead to complexity for users carrying outa desired segmentation operation. For instance, complexity within asegmentation tree may increase, since the tree may become larger andsegments have different semantics with respect to their distinctionentity. In some instances, this may lead to a higher probability forusers choosing the wrong segmentation operation. In other instances,this approach may also lead to a higher technical complexity and higherimplementation costs.

In some implementations, this approach may lead to a higher total costof ownership for customers. Thus, secondary distinction entities may beused to optimize usability (e.g., ease of understanding, clarity, and/orrobustness), supportability, and total cost of ownership for somespecified use cases.

In the example of FIG. 1, the computer system 100 may include one ormore databases (e.g., database 140) that may be configured to store dataand information related to one or more sets 160 including the populationset, one or more members 162 including the first number of members andthe second number of members, and the one or more activities 164including the course of activities. The one or more databases (e.g.,database 140) may be configured to store data and information related tothe one or more entities 170 including the first distinction entity, thesecond distinction entity, and one or more other distinction entities.Further, the one or more databases (e.g., database 140) may beconfigured to store data and information related to the one or moresegments 180 including the reduced segments and one or more otherreduced segments.

In the example of FIG. 1, it should be appreciated that the system 100is illustrated using various functional blocks or modules that representmore-or-less discrete functionality. However, such illustration isprovided for clarity and convenience, and thus, it should be appreciatedthat the various functionalities may overlap or be combined within adescribed block(s) or module(s), and/or may be implemented by one ormore block(s) or module(s) not specifically illustrated in the exampleof FIG. 1. As such, it should be appreciated that conventionalfunctionality that may be considered useful to the system 100 of FIG. 1may be included as well even though such conventional elements are notillustrated explicitly, for the sake of clarity and convenience.

FIG. 2 is an example process flow illustrating an example method 200 fordistinguishing members of a segmentation population based on one or moredistinction entities, in accordance with aspects of the disclosure.

In the example of FIG. 2, operations 202-206 are illustrated as discreteoperations occurring in sequential order. However, it should beappreciated that, in other various implementations, two or more of theoperations 202-206 may occur in a partially or completely overlapping orparallel manner, or in a nested or looped manner, or may occur in adifferent order than that shown. Further, additional operations, thatmay not be specifically shown in the example of FIG. 2, may be includedin some implementations, while, in various other implementations, one ormore of the operations 202-206 may be omitted. Further, in variousimplementations, the method 200 may include a process flow for acomputer-implemented method in the system 100 of FIG. 1. Further, asdescribed herein, the operations 202-206 may provide a simplifiedoperational process flow that may be enacted by the computer system 104to provide features and functionalities as described in reference toFIG. 1.

In aspects of the disclosure, the method 200 of FIG. 2 may be providedfor generating a reduced segment of a population set for a course ofactivities based on one or more distinction entities.

At 202, the method 200 may include determining the population set forthe course of activities (e.g., business campaign). In some examples,the population set may include a first number of members identified by afirst distinction entity (e.g., customers) of the or more distinctionentities.

At 204, the method 200 may include selecting a second distinction entity(e.g., sales representatives) of the one or more distinction entitiesrelated to the first number of members of the population set.

At 206, the method 200 may include generating the reduced segment of thepopulation set for the course of activities by selecting a second numberof members from the first number of members of the population setidentified by the second distinction entity based on predeterminedcriteria (e.g., sales volume).

In some implementations, the method 200 may include selecting the firstdistinction entity (e.g., customers) for the course of activities (e.g.,business campaign) and/or selecting the first number of members of thepopulation set. The method may include receiving user input from a uservia a graphical user interface, the user input including informationrelated to each of the first distinction entity, the second distinctionentity, and the predetermined criteria. The method may includedisplaying user output to a user via a graphical user interface, theuser output including information related to the first number of membersof the population set and the second number of members of the reducedsegment of the population set.

In some implementations, the population set may relate to one or moresets of customers and/or one or more sets of products. The course ofactivities may relate to a business campaign including an ordered set ofbusiness related activities. The first distinction entity may relate toone or more customers targeted by the course of activities, and/or thesecond distinction entity may relate to one or more salesrepresentatives assigned to the first distinction entity. The secondnumber of members may relate to a capacity including a predeterminedcapacity and/or predetermined capacity value related to one or more ofthe distinction entities including the second distinction entity.

In some implementations, the predetermined criteria may relate to one ormore business related measurement values including at least onepredetermined sales volume related to the first distinction entity. Thepredetermined criteria may restrict the reduced segment of thepopulation set to a predetermined sales volume related to the firstdistinction entity. The second number of members of the population setmay be at least less than the first number of members of the populationset.

In some implementations, the method 200 may include generating thereduced segment of the population set for the course of activitiesincluding reducing the population set by selecting the second number ofmembers from the first number of members of the population setidentified by the second distinction entity based on the predeterminedcriteria and removing unselected members of the first number of membersof the population set.

FIG. 3A is another example process flow illustrating another examplemethod 300 for distinguishing members of a segmentation population basedon one or more distinction entities, in accordance with aspects of thedisclosure.

In the example of FIG. 3A, operations 302-306 are illustrated asdiscrete operations occurring in sequential order. However, it should beappreciated that, in other various implementations, two or more of theoperations 302-306 may occur in a partially or completely overlapping orparallel manner, or in a nested or looped manner, or may occur in adifferent order than that shown. Further, additional operations, thatmay not be specifically shown in the example of FIG. 3A, may be includedin some implementations, while, in various other implementations, one ormore of the operations 302-306 may be omitted. Further, in variousimplementations, the method 300 may include a process flow for acomputer-implemented method in the system 100 of FIG. 1. Further, asdescribed herein, the operations 302-306 may provide a simplifiedoperational process flow that may be enacted by the computer system 104to provide features and functionalities as described in reference toFIG. 1.

In aspects of the disclosure, the method 300 of FIG. 3A may be providedfor generating a reduced segment of a population set for a course ofactivities based on one or more distinction entities.

At 302, the method 300 may include determining a population set for acourse of activities including a first course of activities and a secondcourse of activities. In some examples, the population set may include afirst segment with a first number of members for the first course ofactivities. Further, the population set may include a second segmentwith a second number of members for the second course of activities.

At 304, the method 300 may include selecting a second distinction entity(e.g., email address) from the first number of members of the populationset and from the second number of members of the population set.

At 306, the method 300 may include generating a reduced segment of thefirst segment of the population set for the first course of activitiesby removing one or more members of the first number of members of thepopulation set, if after comparing, the second distinction entity (e.g.,email address) of one or more of the first number of members of thepopulation set match the second distinction entity (e.g., email address)of one or more of the second number of members of the population set.

In some implementations, the method 300 may include selecting a secondnumber of members from the first number of members of the population setidentified by the second distinction entity (e.g., salesrepresentatives) based on predetermined criteria (e.g., sales volume).Further, in some implementations, the method 300 may include comparingthe second distinction entity (e.g., email address) of the first numberof members of the population set to the second distinction entity (e.g.,email address) of the second number of members of the population set. Insome implementations, this may include retaining only those members ofboth the first and second population sets, if after comparing, thesecond distinction entity (e.g., email address) of one or more of thefirst number of members of the population set match the seconddistinction entity (e.g., email address) of one or more of the secondnumber of members of the population set.

FIG. 3B is another example process flow illustrating another examplemethod 320 for distinguishing members of a segmentation population basedon one or more distinction entities, in accordance with aspects of thedisclosure.

In the example of FIG. 3B, operations 322-326 are illustrated asdiscrete operations occurring in sequential order. However, it should beappreciated that, in other various implementations, two or more of theoperations 322-326 may occur in a partially or completely overlapping orparallel manner, or in a nested or looped manner, or may occur in adifferent order than that shown. Further, additional operations, thatmay not be specifically shown in the example of FIG. 3B, may be includedin some implementations, while, in various other implementations, one ormore of the operations 322-326 may be omitted. Further, in variousimplementations, the method 300 may include a process flow for acomputer-implemented method in the system 100 of FIG. 1. Further, asdescribed herein, the operations 322-326 may provide a simplifiedoperational process flow that may be enacted by the computer system 104to provide features and functionalities as described in reference toFIG. 1.

In aspects of the disclosure, the method 320 of FIG. 3B may be providedfor generating a reduced segment of a population set for a campaignincluding, e.g., a course of activities based on one or more distinctionentities.

At 322, the method 320 may include determining a population set for acampaign identified by a first distinction entity. In some examples, thecampaign may include a first campaign and a second campaign. Thepopulation set may include a first customer segment with a first numberof members for the first campaign. The population set may include asecond customer segment with a second number of members for the secondcampaign. In some examples, the first campaign may include a firstcourse of activities, and the second campaign may include a secondcourse of activities.

At 324, the method 320 may include selecting a second distinction entityrelated to the first number of members of the population set and thesecond number of members of the population set. In some examples, thefirst distinction entity may relate to customers, and the seconddistinction entity may relate to email addresses.

At 326, the method 320 may include generating a reduced segment of thefirst segment of the population set for the first campaign by removingone or more members of the first number of members of the populationset, if after comparing, the second distinction entity of one or more ofthe first number of members of the population set match the seconddistinction entity of one or more of the second number of members of thepopulation set.

Alternately, at 326, the method 320 may include generating a combinedsegment of the first segment of the population set for the first courseof activities and of the second segment of the population set for thesecond course of activities by retaining one or more members of thefirst number of members of the population set and one or more members ofthe second number of members of the population set, if after comparing,the second distinction entity of one or more of the first number ofmembers of the population set match the second distinction entity of oneor more of the second number of members of the population set.

In some implementations, the method 320 may include selecting the secondnumber of members from the first number of members of the population setidentified by the second distinction entity based on predeterminedcriteria.

In some implementations, the method 320 may include comparing the seconddistinction entity of the first number of members of the population setto the second distinction entity of the second number of members of thepopulation set.

In accordance with aspects of the disclosure, various techniques may beprovided for segmentation as a chain of reductive steps. For instance, asegmentation application may be, at least in part, interpreted and/orimplemented as a tool where a user with a specific business question orrequirement may perform one or more successive reductive operations on abase population (e.g., population set). These steps may result in asmaller segment that may satisfy a user's original requirement orquestion. The answer or result may count equal to or at least greaterthan zero. In some examples, this view may not be exhaustive, but it maybe chosen here as background to further understand how and why asecondary distinction entity (SDE) may offer a unique value and/orfunctionality for the segmentation application, and further may offer aquick mechanism to the user for answering their business questions.

For example, from a base population of 20 million customers, a user maywant to know how many customers reside in the US. The user may perform areductive operation (e.g., Country=US) on the base population. Theresulting segment may represent this reductive step, and the countassociated with it, such as, for example, one or more or all customersfrom the base population that may reside in the US (e.g., 7.8 million).Technically, this reductive operation may result in a generated SQLstatement with a simple WHERE clause on the database table with one ormore or all customers.

Next, in this example, the user may want to know which of the one ormore or all of his customers did buy something. So, for each customer,the customer may aggregate revenue and select those customers that have,e.g., a revenue greater zero. This reductive step may be different fromthe first reductive operation above, since it involves aggregation on akey figure. Technically, in SQL, this may correspond to a aggregationfunction (e.g., sum( ) GROUP and HAVING clause.

Further, in this example, in a third reductive step, the user may wantto know with which of his US customers the revenue was greater zero. Theuser may then intersect the two previously created segments and create athird, smaller segment that includes one or more or all US customers forwhich the user's business and/or company achieved a positive revenue.Technically, this may be a different reductive operation, e.g., a setoperation, and leads to the INTERSECT of two subsets in SQL.

These examples may serve to illustrate a few different types ofreductive operations that the segmentation application may offer. Thesemay be based on one or more of the following: simple filter criteria ofnon-countable characteristics, reduction by aggregated (summable) keyfigures, and reduction via set operations (e.g., INTERSECT, SUBTRACT,etc.) or combination via UNION. In other examples, additional reductiveoperations offered by the application may include one or more of thefollowing: top/bottom N or N % entries that may satisfy an aggregatablekey figure threshold, randomized reduction of entries to N or N %original size, randomized split of entries into 2 or more disjointsubgroups, and one or more various other reductive operations.

In some implementations, it may be important to notice that one or moreof the above mentioned reductive operations may operate directly and/orexclusively on one or more objects of primary interest, e.g., thecustomer in some examples. This may refer to filter criteria, key figureconditions, set operations, and/or randomized entry selections that maybe related directly to this primary object of interest. While these fewoperations when combined together in a more elaborate segmentation modelmay already answer many user's questions about their data, and meet somebusiness requirements, sometimes this may not be enough. In variousexamples, certain business requirements may not be fulfilled bycombination of operations above, or only by a longer sequence ofcombining various operations. In some other examples, these specialrequirements may involve additional reductive, secondary dimensionwhereby the primary object of interest may be indirectly selected,filtered, and/or reduced.

Accordingly, aspects of the disclosure may provide and/or implement oneor more additional, SDE-enhanced, reductive operations, that may beorthogonal to the operations described herein. For instance, operationsmay include: Top N/N5, Bottom N/N % by SDE, randomized reduction by SDE,randomized group split by SDE, subtract by SDE, and intersect by SDE.

Further examples of meanings/semantics of these operations are providedin greater detail herein. In various implementations, these operationsare different in their functionality and outcome when compared to theirnon-SDE enabled counterparts.

In accordance with aspects of the disclosure, these special SDE-enhancedoperations may be configured to offer a mechanism (e.g., implemented asspecific SQL based techniques) that may allow a user to answer businessquestions about data in one or more (e.g., at most two steps), whereconventional techniques either fail to offer this functionality or do sothrough a cumbersome series of steps and data exchanges.

In various implementations, aspects of the disclosure refer to a systemincluding a segmentation engine for audience discovery and targetingconfigured to support finding a specific set of members (e.g. a set ofcustomers, a set of products, etc.) for a specific business case (e.g. acampaign). The set of members (e.g., segmentation population set) may bereduced via segmentation steps, where a segment is created for eachstep. In some examples, each segment may be visualized on a userinterface as a rectangle with a number, which shows a distinct count ofremaining members of this segmentation step. I.e., this count may becalculated by selecting distinct members per segment, where segmentationsteps may operate on these distinct members by default.

In an example, a technique may start with a set including customers(e.g., segment with 15,000 customers), which are reduced to thosecustomers located in the US (e.g., segment with 8,000 customers). In anext step, the technique may restrict the set to those customers havinga sales volume of more than $1,000 (e.g., which may result in a segmentwith 2,700 customers). In this scenario, reduction of the population ofmembers that are of primary interest (e.g., customers) into segments ofdistinct members may be directly and/or exclusively governed by filtercriteria applied in each segmentation step (e.g., country=US, salesvolume greater $1,000, etc.).

In some examples, the problem may be that, for certain use cases, it maybe necessary to operate on entities that are not member entities. Thatis, apart from filter criteria, secondary entities may need to be takeninto account that may govern how the population of the (primary) membersmay be reduced to a new, smaller segment of distinct members to satisfya certain use case. Hence, the secondary entities may refer to secondarydistinction entities. Apart from ordinary filter criteria, thesesecondary entities may present one or more additional modes of operationthat may be configured to reduce a primary member population to smallersegments of distinct members.

For example, a campaign may be executed by 110 sales representatives,where each assigned to one or more customers, and with each salesrepresentative having a capacity to contact a maximum of 5 customerswithin that campaign. Further, the set may be reduced to 2700 customersto include a maximum of 5 customers per assigned sales representative.If there are more customers for one or more sales representatives, thecustomers with the highest sales volume may be kept. As such, in thisexample, per each sales representative, those 5 customers may be kept ina new segment that has the highest sales volume. In this example, thesales representative is the other (non-member) entity. As this scenariodemonstrates, the reduction of the customers may be governed by acombination of two independent (or orthogonal) reductive modes that maythus lead to a two-dimensional (2D) segmentation operation, as follows:take a max of 5 customers per individual sales representative, and ifthere are more customers per individual sales representative, then takeor keep those customers with the highest sales volume.

Clearly, apart from the filter criteria “top sales volume”, thissegmentation step may be additionally governed by a secondarydistinction entity, such as, for example, the sales representative. Whenapplied together and in combination, filter criteria (“Sales Volume”)and customer relation to a specific secondary entity (“SalesRepresentative”) may satisfy this business requirement of, “picking themost promising customers that my limited sales force can still handle”.

Besides the “top” selector described above, the reductive quality ofsuch secondary entities may be fruitfully combined with other selectors:there is a “bottom” (e.g., five customers with the lowest satisfactionlevel) and “random” (e.g., any five customers) selector. In addition, itmay be possible to perform one or more set operations (e.g., intersect,subtract, etc.) on two existing segments. For intersect and subtract, itmay be configured to operate on a different entity.

In an example, two customer segments (e.g., A and B) may be used for twosimilar email-campaigns (e.g., one campaign offering better conditionsfor better customers). Two or more customers (e.g., members of a family)may share a same email-address but may get distributed into separatesegments. In this example, sending two different offers to one and thesame email-address may not be desirable, and as such, customers sharingthe same email-address may be include in one segment. In this case, theemail-address may be referred to as the other, secondary entity.

As these examples demonstrate, definition and application of a secondarydistinction entity for purpose of reducing a member populationintroduces an additional, powerful tool to satisfy specific businessneeds. Such segmentation tasks may not be achieved (e.g., or only in anindirect and cumbersome manner) by application of ordinary filtercriteria alone.

The distinct members of a segmentation population may be identified by asegmentation object key. The segmentation steps may operate on thesedistinct members by default. The segmentation steps may reduce the setof members with respect to their segmentation object keys. Therefore,the segmentation object (that may be technically described by its objectkeys) may be the primary distinction entity.

In these use cases, it may not be considered sufficient to operate onthe primary distinction entity (e.g., the customers), but on a secondarydifferentiator, such as, for example, sales representative,email-address, etc. Thus, a secondary distinction entity may beintroduced for specific segmentation operations. In someimplementations, the secondary distinction entity may not be referred toas a secondary segmentation object, because the resulting segment andits count may still reflect the primary distinction entity (i.e., thesegmentation object with its object keys).

In some examples, the secondary distinction entity may be used in twosemantically different ways within the segmentation operations, such as,for example, on a “per” and/or “based-on” context or basis. For example,“per”-semantic within a segmentation step may include Top N/Top % ofprimary distinction entity per secondary distinction entity, where thetop five customers per sales representative are selected by salesvolume. In another example, this operation may result in a segmentincluding a maximum 550 customers (maximum 5 customers*110 salesrepresentatives). In another example, all distinct sales representativesfrom a source segment are selected; for each distinct salesrepresentative, the top five customers are selected by sales volume; andall selected customers are merged into one new segment. In anotherexample, the top 10% customers per sales representative are selected bysales volume.

In some implementations, “per”-semantic within a segmentation step mayinclude Bottom N/Bottom % of the primary distinction entity per thesecondary distinction entity. The bottom eight customers per salesrepresentative may be selected by customer satisfaction. The bottom 15%customers per sales representative may be selected by customersatisfaction.

In some implementations, “per”-semantic within a segmentation step mayinclude Random N/Random % of the primary distinction entity per thesecondary distinction entity. Any twenty customers may be selected persales representative. Any 12% customers may be selected per salesrepresentative.

In some implementations, “based-on”-semantic within a Set-Operation forcombining two segments may include intersection of the primarydistinction entity based on the secondary distinction entity. Allcustomers from segments A and B may intersect by email-address toidentify customers with overlapping email-addresses.

In an example, distinct email-addresses may be selected for each sourcesegment, e.g., resulting in two lists of email-addresses. Allemail-addresses that appear on both lists may be selected. A new segmentmay be created with all customers for the email-addresses selectedpreviously.

In some examples, the primary distinction entity may be subtracted basedsecondary distinction entity. All customers from segment A whoseemail-address appears as well for customers of segment B may besubtracted.

In some examples, “based-on”-semantic within a Random-SplitSegment-Operation may include Random-Split of the primary distinctionentities based on the secondary distinction entity. Randomly split allcustomers into three segments (e.g., 80%, 10%, 10%) based on theircountry.

In an example, all distinct countries may be selected for a sourcesegment; the countries may be randomly split into three parts accordingto the given percentages; and a new segment may be created for each ofthe three parts with the customers derived from the countries. In someexamples, the number of customers may not necessarily adhere to thepercentage-distribution provided by the user, since that distributionmay be applied to the secondary and not the primary distinction entity.

Another approach to cover the use cases and examples introduced hereinmay be to completely switch to another distinction entity (e.g., thesales representative, email-address, etc.) with a defined segmentationaction resulting in a new segment. This approach (which may beimplemented by some competitors) implies:

In some examples, the new segment may show a distinct count of the otherdistinction entity. The segments within one segment tree representdifferent segmentation objects as distinction entities. The full switchbetween different distinction entities leads to a more complex segmenttree: an additional switch-pre-step becomes necessary to create asegment which reflects the other distinction entity; carry out thedesired segmentation operation on the other distinction entity segment;an additional switch-post-step becomes necessary to create a segmentwhich again reflects the original distinction entity; and this resultsin three instead of one new segment.

In various implementations, this may lead to complexity for userscarrying out desired segmentation operations. Complexity within asegmentation tree may or may not increase, when the tree becomes larger,and segments have different semantics with respect to their distinctionentity. This may lead to higher probability for users choosing a wrongsegmentation operation. This approach may lead to higher technicalcomplexity and higher implementation costs. Increased complexity forusers and increased technical complexity may lead to higher total costof ownership for customers, businesses, and/or companies. Therefore,secondary distinction entities may optimize usability (e.g., ease ofunderstanding, clarity, robustness, etc.), supportability and total costof ownership.

FIGS. 4-11 are example screenshots illustrating various example usecases for a secondary distinction entity, in accordance with aspects ofthe disclosure.

In various implementations, aspects of special SDE-enhanced operationsrefer to a mechanism (e.g., implemented as a specific SQL basedtechnique) that allows a user to answer various business questions aboutdata and/or information in one or more (e.g., two steps) through uniquetechniques that offer efficient operation and functionality withoutcumbersome series of steps and complex data exchanges. Further, withinvarious applications, the secondary distinction entity (SDE) may be usedand implemented for the use cases as described herein. However, the SDEmay be relevant for other use cases.

FIG. 4 is an example screenshot illustrating an example use case 400 fora secondary distinction entity, in accordance with aspects of thedisclosure.

As described in reference to the example of FIG. 1, the segmentationmanager 120 may include the input handler 123 that may be configured toreceive user input from a user via a graphical user interface (UI), suchas, e.g., the UI 152. In the example of FIG. 4, user input for theexample use case 400 may include selection of data and/or informationrelated to an operation 402 of creating a segment with use of one ormore distinction entities, such as a first distinction entity 410 (i.e.,PDO), a second distinction entity 412 (i.e., SDE), and predeterminedcriteria (i.e., value).

As described herein, the secondary distinction entity (SDE) may be usedin semantically different ways within segmentation operations, such as,for example, in a “per” and a “based-on” semantic basis.

For instance, in some implementations, the “per”-semantic may be usedwithin a segmentation operation 402 for creating a segment for grossmargin. As shown in the example of FIG. 4, a comparison operator may beselected for the Top N/Top % of primary distinction entity PDO 410 persecondary distinction entity SDE 412 (e.g., country, including in someother examples, country-region, country-city, etc.) with thepredetermined criteria 414 having, e.g., a value of 10. In thisinstance, the example operation 402 refers to selecting ten customershaving a highest gross margin (e.g., the top 10 customers), but selectthem per country (SDE 412). In the example of FIG. 4, the exampleoperation 402 selects the top ten customers for every country per SDE412. In some examples, the value of the predetermined criteria 414 maybe represented by (or based on) a selection of either percentage orcount 420.

Further, in some examples, a currency code 422 may be selected, e.g.,EUR, to reflect the European Union currency. However, in other examples,various other currencies, e.g., US Dollar, may be selected.

The resulting customers are distributed across the countries asvisualized in a preview on a lower end of the screenshot of FIG. 5.

FIG. 5 is an example screenshot illustrating an example output for theexample use case 400 of FIG. 4 in reference to a secondary distinctionentity 412, in accordance with aspects of the disclosure.

As described in reference to the example of FIG. 1, the segmentationmanager 120 may include the output handler 124 that may be configured todisplay user output to a user via a graphical user interface, such as,e.g., the UI 152. In the example of FIG. 5, user output for the exampleuse case 400 may include data and/or information related to the firstnumber of members 510 of the population set (e.g., 8,796 customers)and/or the second number of members 512 of the reduced segment of thepopulation set (e.g., 32 customers).

For instance, in some implementations, the resulting customers 520 maybe distributed across various countries 522 as visualized in a preview502 on a lower end of the screenshot 500. This may imply that forcountries other than Germany and US, there are not more than 10customers with any gross margin at all.

FIG. 6 is an example screenshot illustrating an example output tree 600for the example use case 400 of FIG. 4 in reference to a secondarydistinction entity 412, in accordance with aspects of the disclosure.

In the example output tree of FIG. 6, user output for the example usecase 400 may include data and/or information related to the first numberof members 510 of the population set (e.g., 8,796 customers) and/or thesecond number of members 512 of the reduced segment of the populationset (e.g., 32 customers).

This approach may imply the new segment to show a distinct count foreach country of the countries 522. The segments within one segment treemay represent different segmentation objects as distinction entities. Asshown in the example of FIG. 6, a full switch between differentdistinction entities may lead to a more complex segment tree, where anadditional switch-pre-step may be necessary to create a segment thatreflects the other distinction entity, and to carry out a desiredsegmentation operation on the other distinction entity segment. Anadditional switch-post-step may be necessary to create a segment thatmay reflect the original distinction entity. As shown in FIG. 6, withoutuse of the SDE 512, the same task may have taken many more steps 610 andtime as needed to apply a “Top 10 Gross Margin”-Filter on each and everycountry manually, followed by merging all of them together into onesegment/dataset.

FIG. 7 is another example screenshot illustrating another example usecase 700 for a secondary distinction entity, in accordance with aspectsof the disclosure.

For instance, in some implementations, the “per”-semantic may be usedwithin a segmentation step 702 for creating a segment for customersatisfaction score. As shown in the example of FIG. 7, a comparisonoperator may be selected for the Bottom N/Bottom % of primarydistinction entity PDO 710 per secondary distinction entity SDE 712(e.g., sales representative) with the predetermined criteria 714 having,e.g., a value of 10%. In various instances, the example operation 702may refer to selecting bottom 5 customers per sales representative(e.g., SDE 712) by customer satisfaction or select bottom 10% ofcustomers per sales representative (e.g., SDE 712) by customersatisfaction. In the example of FIG. 7, the example operation 702selects the bottom 10% of customers for every sales representative perSDE 712. In some examples, the value of the predetermined criteria 714may be represented by (or based on) a selection of either percentage orcount 720.

FIG. 8 is another example screenshot illustrating another example usecase 800 for a secondary distinction entity, in accordance with aspectsof the disclosure.

For instance, in some implementations, the “per”-semantic may be usedwithin a segmentation step 802 for creating a reduced segment forenterprise resource planning (ERP) customers. As shown in the example ofFIG. 8, a comparison operator may be selected for the Random N/Random %of primary distinction entity PDO per secondary distinction entity SDE812 (e.g., country) with the predetermined criteria 814 having, e.g., avalue of 1. In various instances, the example operation 802 may refer toselecting any twenty customers per sales representative or select any12% customers per sales representative. In the example of FIG. 8, theexample operation 802 selects any 1 customer per country (e.g., SDE812), where this example may be considered a type of deduplication tothereby, e.g., select only one customer per country. Further, the valueof the predetermined criteria 814 may be represented by (or based on) aselection of either percentage or count 820.

FIG. 9 is another example screenshot illustrating another example usecase 900 for a secondary distinction entity, in accordance with aspectsof the disclosure.

As described in reference to the example of FIG. 9, the segmentationmanager 120 may include the input handler 123 that may be configured toreceive user input from a user via a graphical user interface (UI), suchas, e.g., the UI 152. In the example of FIG. 9, user input for theexample use case 900 may include selection of data and/or informationrelated to an operation 902 of combining segments with one or moredistinction entities, such as a first distinction entity (i.e., PDO) anda second distinction entity 912 (i.e., SDE) by, e.g., a reference objectselection.

For instance, in some implementations, the “based-on”-semantic may beused within a set operation 902 for combining two segments (e.g., A, B)by way of an intersect operation 904 for an intersection of a primarydistinction entity (e.g., customers) based on a secondary distinctionentity 912 (e.g., email address). In this instance, the combine segmentoperation 902 may be used to intersect 904 one or more or all customersfrom segments A and B by (or based on) email-address (SDE 912) toidentify customers with overlapping email-addresses.

In the example of FIG. 9, from a set of 60 subscribers and/or customers920, 44 subscribers and/or customers are assigned to a first device inuse 922, and 11 subscribers and/or customers are assigned to a seconddevice in use 924. In this instance, the combine segment operation 902is used to intersect 904 the subscribers and/or customers from segmentsA and B by (or based on) email-address (SDE 912) to identify customerswith overlapping email-addresses. Further, in this example, a processinggoal may be to create an intersecting set of multiple segments includinga first segment A for a first device in use and second segment B for asecond device in use based on an email address as selected by areference object for the SDE 912.

In some implementations, other operations may be used including, e.g.,reduce segment operations based on percentage or count using a selectedSDE based on predetermined criteria. Further, in some otherimplementations, other reference objects may include other objectselections including, for example, a sales organization or one or moresales representatives within one or more sales organizations.

FIG. 10 is another example screenshot illustrating another example usecase 1000 for a secondary distinction entity, in accordance with aspectsof the disclosure.

For instance, in some implementations, the “based-on”-semantic may beused within a set operation 1002 for subtracting two segments (e.g., A,B) by way of a subtract operation 1004 for a subtraction of a primarydistinction entity (e.g., customers) based on a secondary distinctionentity 1012 (e.g., email address). In this instance, the combine segmentoperation 1002 may be used to subtract 1004 one or more or all customersof segment A from segment B by (or based on) email-address (SDE 912) toidentify customers with overlapping email-addresses, i.e., subtract allcustomers from segment A whose email-address appears as well forcustomers of segment B.

In the example of FIG. 10, from a set of 60 subscribers and/or customers1020, 44 subscribers and/or customers are assigned to a first device inuse 1022, and 11 subscribers and/or customers are assigned to a seconddevice in use 1024. In this instance, the combine segment operation 1002is used to subtract 1004 the subscribers and/or customers of segment Afrom segment B by (or based on) email-address (SDE 912) to identifycustomers with overlapping email-addresses. Further, in this example, aprocessing goal may be to create a set where a second segment B for asecond device in use is subtracted from a first segment A for a firstdevice in use based on an email address as selected by a referenceobject for the SDE 1012.

As shown in the examples of FIGS. 9-10, one or more combine segmentoperations may include merge, intersect, subtract (A-B), subtract (B-A),and cancel. In other examples, various other combine segment operationsmay be used.

FIG. 11 is another example screenshot illustrating another example usecase 1100 for a secondary distinction entity, in accordance with aspectsof the disclosure.

As described in reference to the example of FIG. 11, the segmentationmanager 120 may include the input handler 123 that may be configured toreceive user input from a user via a graphical user interface (UI), suchas, e.g., the UI 152. In the example of FIG. 11, user input for theexample use case 1100 may include selection of data and/or informationrelated to an operation 1102 of splitting segments with use of one ormore distinction entities, such as a first distinction entity (i.e.,PDO) and a second distinction entity 1112 (i.e., SDE) by, e.g., areference object selection.

For instance, in some implementations, the “based-on”-semantic may beused within a set operation 1102 for a random split segment operation byway of a split segment operation for a random split of a primarydistinction entity (e.g., ERP customers) based on a secondarydistinction entity 1112 (e.g., country). In this instance, the randomsplit operation 1102 may be used to randomly split customers intomultiple segments including at least three segments (e.g., 80%, 10%,10%) 1114 by (or based on) country, e.g., a reference object selectedfor the SDE 1112 to thereby ensure that there is no country in two orthree segments. Further, in some examples, the random split operation1102 may be used to randomly split customers into multiple segmentsrepresented by (or based on) a selection of either percentage or count1120.

In various implementations, aspects of the disclosure refer to use of aprimary segmentation object (PSO). For instance, segmentation includesuse of a PSO, which determines what to be counted and by which keysvarious data sources may be joined. In some instances, joining datasources based on the PSO may require PSO keys to be present in all datasources. As such, the PSO may be a true segmentation object and theinstance, that its keys may be present in all data sources, maydistinguish it from a distinction entity, and thus may be primary,secondary, or tertiary.

In various implementations, the PSO may be considered an Object Typeknown from customizing, and the segmentation object key may beconsidered a primary distinction entity. From another point of view, anobject of interest for the segmentation profile may include, e.g., thecustomer, which may be the member desired to be counted, previewed,split, exported, etc. As such, in some examples, the values of the PSOmay be treated as distinct when counting, pre-viewing, etc.

In various implementations, aspects of the disclosure refer to use of asecondary distinction entity (SDE). For instance, some feature requestsmay demand that certain segmentation operations (e.g., which hithertomay be executed from a perspective of the PSO) may be executed from ashift in perspective, which may take distinct values of another, asecondary, entity into account. Hence, this description refers to asecondary distinction entity. In some examples, the SDE may define oneor more attributes of a specific data source (e.g., country, region,etc.), which may alter certain segmentation operations. Further, in someexamples, operations with distinct business semantics may be enrichedwith the SDE aspect, in a manner as described herein.

For example, a segmentation operation may include: Top N (SDE) per keyfigure (same applies to Top %, Bottom N and Bottom %).

Here, not the top N PSO values per (sorted) key figure values are taken,but for each distinct SDE value a sorted order of key figure values iscomputed, and then for each distinct SDE value the top N PSO values arepersisted/selected/counted. So, the top N by SDE operation has thetendency to lead to a larger segment count than a Top N operationwithout SDE. In this example, what is counted is still the number of thepersisted distinct PSO values. In some implementations, PSO values maybe selected by key figure per each distinct SDE value.

In another example, a segmentation operation may include: single randomKEEP (SDE). This case, works slightly different than the above GSPL/SDEand the non-SDE random keep, but similar to the Top N (SDE) case. It isnot the random split group (SDE) case with just one segment.

Here, not the first random N PSO values per key figure values are taken,but for each distinct SDE value a random order of PSO values iscomputed, and then for each distinct SDE value the first N PSO valuesare persisted/selected/counted. So, the random N/N % by SDE operationhas the tendency to lead to a larger segment count than just a randomKEEP without SDE. What is counted is still the number of the persisteddistinct PSO values. As all random operations, the Random KEEP (SDE)operation is independent of any attribute filter or criteria (be it acharacteristic, or a key figure), since the sort order for selection isdetermined by a random figure, and an aggregated key figure value sortedascending (Bottom N) or descending (Top N) is not needed. In someimplementations, random PSO values may be selected per each distinct SDEvalue.

In another example, a segmentation operation may include: random splitgroup (GSPL/SDE). Whereas the non-SDE random split group applies therandomizing function to each distinct PSO value, the SDE case here firstdetermines all distinct values of the SDE, assigns them random values,then selects a certain number of these distinct SDE values based ontheir random number, and then ultimately re-determines all PSO valuesfor these chosen distinct SDE values which also are part of the parentsegment. So, there's something like an indirect, or referentialrandomization based not on the PSO values directly, but on the SDEvalues (and the parent segment, of course). In some implementations, PSOvalues may be selected based on randomly split SDE values.

In another example, a segmentation operation may include: set operations“Subtract by SDE” (DIF2) and “Intersect by SDE” (INT2). Additional setoperations may be introduced which perform a two-level set operationeach: “Difference by SDE” (DIF2) and “Intersect by SDE” (INT2). Here,the first level of the particular set operation is performed at thelevel of distinct SDE values: i.e., DIF2: “Subtracts” PSO values of oneset A from those of another set B based on SDE values found in bothsets. Only PSO values from set A will survive in the result set that donot have any SDE value also present in set B. The subtraction isprimarily based on the SDE values and not directly on the PSO valuesthemselves. That's the reason for putting the “subtract” above inparentheses. No PSO values from set B survive.

The second-level set operations may nevertheless be performed on PSOvalues as an EXCEPT. Given the restriction (by definition) that SDEvalues must have an 1:n cardinality regarding PSO values, to bemeaningfully interpreted and technically implemented in a consistentway, given this restriction the second-level EXCEPT on PSO values doesnot make any difference in result set. I.e., it could be left out. Theresult set may be the same (with 1:n SDE values). It has beennevertheless included at the PSO level (first EXCEPT it he SQL below) toat least guarantee an EXCEPT operation for PSO values, if thecardinality of SDE: PSO values should be n:m for whatever reason.

In another example, a segmentation operation may include: INT2, whichmay be configured to combine PSO values of one set A with those ofanother set B based on the same SDE values found in both sets(=SDE-Intersect). In this example, a two-level set operation at theprimary level of the SDE, its values found in set A are intersected withthose SDE values of set B. The PSO values belonging to the result set ofintersected SDE values may then be combined. This combination may be aUNION set operation at the secondary, PSO level.

From these implemented use cases, the relationship or cardinalitybetween PSO and SDE values may ideally be a n:1 relationship. That is, aPSO value may refer to exactly one SDE value, but one SDE value mayrefer to multiple PSO values. With a n:m cardinality, the results ofabove SDE operations may be difficult to be interpreted in terms ofbusiness semantics, since it may not be guaranteed anymore that the SDEvalues of the individual child segments are disjunctive (i.e., mutuallyexclusive). However, with an n:1 cardinality, the implementation mayguarantee that:

all distinct values of a SDE in any given group (child) segment;

all distinct values of a PSO in any given group (child) segment; and/or

are not to be found in any of the neighboring group (child) segments.

In other words, in some examples, the segments of such a split group maybe mutually exclusive in terms of both their PSO and SDE values.

In some implementations, aspects of the disclosure may refer to use of asecondary distinction entity (SDE) from a database and SQL-Generationaspect.

Secondary Distinction Entity from a UI Perspective: _sdeHandler.js

Since the metadata for the secondary distinction entity and the UIcontrol is equal for all use cases of the secondary distinction entity(SDE), an own object may be implemented to handle the metadata andcreate the UI-control (a drop down listbox) for the SDEs. Thisjavascript object may be built with the Singleton-Pattern, since allconsumers of the SdeHandler share the same metadata and therefore shareon instance of the object. The object has the followingprototype-methods:

SdeHandler(aSdes, sSoDescription)—Constructor

Called from the metadata-receiver in the segmentation-controller to setthe received secondary distinction entities from the customizing intothe singleton-instance. Additionally, the description of thesegmentation object (which is the primary distinction entity, anddisplayed in some cases) is added from the metadata into the singleton.

setInactive( )

Called from the metadata-receiver in the segmentation-controller in caseno SDEs where received (and hence no Sdes are customized) which makesall controls which were or will be produced from the SdeHandlerinvisible

getDropdown(sVisibleBindingPath, bInitialEntryWithSo)

Returns a new sap.ui.commons.DropdownBox instance with thedropdown-items bound according to the received SDEs (or the drop-downbeing invisible). If required an additional visibility-binding-path canbe specified, which is evaluated in the control together with thereceived SDEs (required for Top/Bottom N/% use case to make thedropdown-box visible only if there are SDEs and if the select operatoris Top/Bottom N/%). The second parameter bInitialEntryWithSo indicateswhether the initial entry in the dropdown-box is “<None>” or is the nameof the segmentation object.

The requester of the control has to ensure to (re)set the selected keyof the drop-down-box (optimally via binding) whenever required (reset incase of create, set in case of edit) and to read the selected SdeId fromthe drop-down-box when creating and/or changing a segment.

getLabel(sI18nText, sLabelForld, sVisibleBindingPath)

Returns a new sap.ui.commons.Label instance with the Label-Text beingtaken from the i18n-repository (for translation) and the labelfor-property set to the specified id. If required an additionalvisibility-binding-path can be specified, which is evaluated in thecontrol together with the received SDEs (required for Top/Bottom N/% usecase to make the label visible only if there are SDEs and if the selectoperator is Top/Bottom N/%).

getHorizontalLayout(oLabel, oDropDown)

Returns a new Layout containing the two provided controls. Thevisibility is controlled depending on the existence of SDEs.

getSdeText(sSdeId)

Returns the language dependent text for the Sde-Id provided. Requiredfor segment name generation and segment summary

getVisibleBinding(sVisibleBindingPath)

Internal helper function which creates the binding object used forlabel, dropdown and layout depending on the SDE-existence and optionalsVisibleBindingPath

In some implementations, aspects of the disclosure may refer to use of asecondary distinction entity from a communication aspect.

The communication details between ABAP backend and HTML5 frontend aredocumented within the following wiki:

Relevant for SDEs may include the following Pseudo Code I:

Operation “GetStartupData”—response contains now an array like forexample:

secondaryDistinctionEntities: [ {id: “ACCOUNT”, text: “Account”}, id:“CONTACT_PERSON”, text: “Contact Person”}]

All operations sending segment-data to the backend have an adjustedsegment structure as follows:

{id: “ab”, ... data: {  mode: “intr”, ...  secDistinctionId:“ACCOUNT”//optional  } }

Implementations of the various techniques described herein may beimplemented in digital electronic circuitry, or in computer hardware,firmware, software, or in combinations of them. Implementations mayimplemented as a computer program product, i.e., a computer programtangibly embodied in an information carrier, e.g., in a machine-readablestorage device or in a propagated signal, for execution by, or tocontrol the operation of, data processing apparatus, e.g., aprogrammable processor, a computer, or multiple computers. A computerprogram, such as the computer program(s) described above, may be writtenin any form of programming language, including compiled or interpretedlanguages, and may be deployed in any form, including as a stand-aloneprogram or as a module, component, subroutine, or other unit suitablefor use in a computing environment. A computer program may be deployedto be executed on one computer or on multiple computers at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

Method steps may be performed by one or more programmable processorsexecuting a computer program to perform functions by operating on inputdata and generating output. Method steps also may be performed by, andan apparatus may be implemented as, special purpose logic circuitry,e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any type of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. Elements of a computer may include atleast one processor for executing instructions and one or more memorydevices for storing instructions and data. Generally, a computer alsomay include, or be operatively coupled to receive data from or transferdata to, or both, one or more mass storage devices for storing data,e.g., magnetic, magneto-optical disks, or optical disks. Informationcarriers suitable for embodying computer program instructions and datainclude all forms of non-volatile memory, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory may be supplemented by, or incorporated in special purposelogic circuitry.

To provide for user interaction, implementations may be implemented on acomputer having a display device, e.g., a cathode ray tube (CRT) orliquid crystal display (LCD) monitor, for displaying information to theuser and a keyboard and a pointing device, e.g., a mouse or a trackball,by which the user can provide input to the computer. Other types ofdevices may be used to provide for interaction with a user as well; forexample, feedback provided to the user may be any form of sensoryfeedback, e.g., visual feedback, auditory feedback, or tactile feedback;and input from the user may be received in any form, including acoustic,speech, or tactile input.

Implementations may be implemented in a computing system that includes aback-end component, e.g., as a data server, or that includes amiddleware component, e.g., an application server, or that includes afront-end component, e.g., a client computer having a graphical userinterface or a Web browser through which a user can interact with animplementation, or any combination of such back-end, middleware, orfront-end components. Components may be interconnected by any form ormedium of digital data communication, e.g., a communication network.Examples of networks, such as communication networks, may include alocal area network (LAN) and a wide area network (WAN), e.g., theInternet.

While certain features of the described implementations have beenillustrated as described herein, many modifications, substitutions,changes and equivalents will now occur to those skilled in the art. Itis, therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the scope of theembodiments.

What is claimed is:
 1. A computer system including instructions recordedon a non-transitory computer-readable medium and executable by at leastone processor, the system comprising: a segmentation manager configuredto cause the at least one processor to generate a reduced segment of apopulation set for a course of activities based on one or moredistinction entities, the segmentation manager including: a set handlerconfigured to determine the population set for the course of activities,the population set including a first number of members identified by afirst distinction entity of the or more distinction entities; an entityhandler configured to select a second distinction entity of the one ormore distinction entities related to the first number of members of thepopulation set; and a segmentation engine configured to generate thereduced segment of the population set for the course of activities byselecting a second number of members from the first number of members ofthe population set identified by the second distinction entity based onpredetermined criteria.
 2. The system of claim 1, wherein the entityhandler is configured to select the first distinction entity for thecourse of activities.
 3. The system of claim 1, wherein the set handleris configured to select the first number of members of the populationset.
 4. The system of claim 1, wherein the segmentation handler includesan input handler configured to receive user input from a user via agraphical user interface, the user input including information relatedto each of the first distinction entity, the second distinction entity,and the predetermined criteria.
 5. The system of claim 1, wherein thesegmentation handler includes an output handler configured to displayuser output to a user via a graphical user interface, the user outputincluding information related to the first number of members of thepopulation set and the second number of members of the reduced segmentof the population set.
 6. The system of claim 1, wherein: the populationset relates to a set of customers, and the first distinction entityrelates to customers targeted by the course of activities.
 7. The systemof claim 1, wherein: the course of activities relates to a businesscampaign including an ordered set of business related activities, andthe second distinction entity relates to sales representatives assignedto the first distinction entity.
 8. The system of claim 1, wherein thesecond number of members relates to a capacity including a predeterminedcapacity value related to the second distinction entity.
 9. The systemof claim 1, wherein the predetermined criteria relates to at least onebusiness related measurement value including a predetermined salesvolume related to the first distinction entity.
 10. The system of claim1, wherein the predetermined criteria restricts the reduced segment ofthe population set to a predetermined sales volume related to the firstdistinction entity.
 11. The system of claim 1, wherein the second numberof members of the population set is at least less than the first numberof members of the population set.
 12. The system of claim 1, wherein thesegmentation engine is configured to generate the reduced segment of thepopulation set for the course of activities by reducing the populationset including selecting the second number of members from the firstnumber of members of the population set identified by the seconddistinction entity based on the predetermined criteria and removingunselected members of the first number of members of the population set.13. A computer program product, the computer program product tangiblyembodied on a non-transitory computer-readable storage medium andincluding instructions that, when executed by at least one processor,are configured to: generate a reduced segment of a population set for acourse of activities based on one or more distinction entities,including instructions configured to: determine the population set forthe course of activities, the population set including a first number ofmembers identified by a first distinction entity of the or moredistinction entities; select a second distinction entity of the one ormore distinction entities related to the first number of members of thepopulation set; and generate the reduced segment of the population setfor the course of activities by selecting a second number of membersfrom the first number of members of the population set identified by thesecond distinction entity based on predetermined criteria.
 14. Thecomputer program product of claim 13, including instructions that, whenexecuted by the at least one processor, are configured to: receive userinput from a user via a graphical user interface, the user inputincluding information related to each of the first distinction entity,the second distinction entity, and the predetermined criteria; anddisplay user output to a user via a graphical user interface, the useroutput including information related to the first number of members ofthe population set and the second number of members of the reducedsegment of the population set.
 15. The computer program product of claim13, wherein: the population set relates to a set of customers, the firstdistinction entity relates to customers targeted by the course ofactivities, the course of activities relates to a business campaignincluding an ordered set of business related activities, and the seconddistinction entity relates to sales representatives assigned to thefirst distinction entity.
 16. The computer program product of claim 13,including instructions that, when executed by the at least oneprocessor, are configured to: generate the reduced segment of thepopulation set for the course of activities by reducing the populationset including selecting the second number of members from the firstnumber of members of the population set identified by the seconddistinction entity based on the predetermined criteria and removingunselected members of the first number of members of the population set.17. A computer program product, the computer program product tangiblyembodied on a non-transitory computer-readable storage medium andincluding instructions that, when executed by at least one processor,are configured to: determine a population set for a campaign identifiedby a first distinction entity, the campaign including a first campaignand a second campaign, the population set including a first customersegment with a first number of members for the first campaign, thepopulation set including a second customer segment with a second numberof members for the second campaign; select a second distinction entityrelated to the first number of members of the population set and thesecond number of members of the population set; and generate a reducedsegment of the first segment of the population set for the firstcampaign by removing one or more members of the first number of membersof the population set, if after comparing, the second distinction entityof one or more of the first number of members of the population setmatch the second distinction entity of one or more of the second numberof members of the population set.
 18. The computer program product ofclaim 17, wherein the first distinction entity relates to customers, andthe second distinction entity relates to email addresses.
 19. Thecomputer program product of claim 17, further comprising instructionsthat, when executed by at least one processor, are configured to: selectthe second number of members from the first number of members of thepopulation set identified by the second distinction entity based onpredetermined criteria.
 20. The computer program product of claim 17,further comprising instructions that, when executed by at least oneprocessor, are configured to: compare the second distinction entity ofthe first number of members of the population set to the seconddistinction entity of the second number of members of the populationset.
 21. A computer program product, the computer program producttangibly embodied on a non-transitory computer-readable storage mediumand including instructions that, when executed by at least oneprocessor, are configured to: determine a population set for a campaignidentified by a first distinction entity, the campaign including a firstcampaign having a first course of activities and a second campaignhaving a second course of activities, the population set including afirst customer segment with a first number of members for the firstcampaign, the population set including a second customer segment with asecond number of members for the second campaign; select a seconddistinction entity related to the first number of members of thepopulation set and the second number of members of the population set;and generate a combined segment of the first segment of the populationset for the first course of activities and of the second segment of thepopulation set for the second course of activities by retaining one ormore members of the first number of members of the population set andone or more members of the second number of members of the populationset, if after comparing, the second distinction entity of one or more ofthe first number of members of the population set match the seconddistinction entity of one or more of the second number of members of thepopulation set.